package train48days;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;

public class 跳石板 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int m = sc.nextInt();
        int[] step= new int[m+1];
        for (int i = 0; i < m+1; i++) {
            step[i] = Integer.MAX_VALUE;
        }
        step[n] =0;
        for (int i = n; i <m ; i++) {
            if (step[i]==Integer.MAX_VALUE){
                continue;
            }
            List<Integer> list= dvi(i);
            for (int  j: list) {
                if (i+j<=m && step[i+j]!=Integer.MAX_VALUE){
                    step[i+j] = Math.min(step[i+j],step[i]+1 );
                }else if (i+j<=m){
                    step[i+j]=step[i]+1;
                }
            }
        }
        if (step[m]==Integer.MAX_VALUE){
            System.out.println(-1);
        }else {
            System.out.println(step[m]);
        }
    }
    public static List<Integer> dvi(int num){
        List<Integer> list = new ArrayList<Integer>();
        for (int i = 2; i*i<=num ; i++) {
            if (num%i==0){
                list.add(i);
                if (num/i!=i){
                    list.add(num/i);
                }
            }
        }
        return list;
    }

}
